package com.kaizeli.website.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kaizeli.website.pojo.base.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 项目验收节点总表
 * 项目立项后，应按照配置的项目周期与验收周期自动生成多个项目验收节点
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("acceptance_node")
public class AcceptanceNode extends BaseDO {

    /**
     * 主键ID，验收批次
     */
    @TableId(type = IdType.NONE)
    private Long id;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 验收周期（如 2025-09 表示 2025年9月）
     */
    private String acceptancePeriod;

    /**
     * 验收周期开始日期
     */
    private LocalDate acceptanceStartDate;

    /**
     * 验收周期结束日期
     */
    private LocalDate acceptanceEndDate;

    /**
     * 预期验收时间
     */
    private LocalDate acceptanceDate;

    /**
     * 实际验收时间
     */
    private LocalDate actualAcceptanceDate;

    /**
     * 本周期总金额（含人工+差旅）
     */
    private BigDecimal totalAmount;

    /**
     * 额外费用金额
     */
    private BigDecimal additionalCostAmount;

    /**
     * 状态（待提交、待审核、已验收）
     */
    private String status;

    /**
     * 汇总结算单附件（PDF/Excel等）
     */
    private String attachmentUrl;

    /**
     * 备注
     */
    private String remark;

    /**
     * 预警级别
     */
    private String alertLevel;
}
